import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;





public class Bibliotheque {
	
	public static HashMap<String,Integer> argFctPredefinie = new HashMap<String,Integer>();
	
	public static HashMap<String,Method> methodFctPredefinie = new HashMap<String,Method>();
	
//	(<non fct definie> <liste arg>)
	// liste des arguments pour les fct definie avec "pour"
	public static HashMap<String, ArrayList> argFctDefinie = new HashMap<String, ArrayList>(); 
	
	//	(<non fct definie> <liste arg>)
	// liste des arguments optionnel pour les fct definie avec "pour"
	public static HashMap<String, ArrayList> argOpFctDefinie = new HashMap<String, ArrayList>(); 
	
	//(<non fct definie> <corps>)
	//corps des fct definie avec "pour"
	public static  HashMap<String, ArrayList>  corpsFctDefinie = new HashMap<String, ArrayList>(); 
	
	
	public Bibliotheque(Console consol, Execution exec) {
		
		Math m = new Math();
		Controle c = new Controle();
		Test t = new Test();
		GestionEnv g = new GestionEnv();
		Liste l = new Liste();
		AffichageConsole ac = new AffichageConsole(consol);
		AffichageGraphique ag = new AffichageGraphique(exec,consol);
		
		
		argFctPredefinie.putAll(m.argFctPredefinie);
		argFctPredefinie.putAll(c.argFctPredefinie);
		argFctPredefinie.putAll(t.argFctPredefinie);
		argFctPredefinie.putAll(g.argFctPredefinie);
		argFctPredefinie.putAll(l.argFctPredefinie);
		argFctPredefinie.putAll(ac.argFctPredefinie);
		argFctPredefinie.putAll(ag.argFctPredefinie);
		
		methodFctPredefinie.putAll(m.methodFctPredefinie);
		methodFctPredefinie.putAll(c.methodFctPredefinie);
		methodFctPredefinie.putAll(t.methodFctPredefinie);
		methodFctPredefinie.putAll(g.methodFctPredefinie);
		methodFctPredefinie.putAll(l.methodFctPredefinie);
		methodFctPredefinie.putAll(ac.methodFctPredefinie);
		methodFctPredefinie.putAll(ag.methodFctPredefinie);
		
		
	}
}
